The present invention draws upon two different areas of communication: data packet-based communication employing Internet addresses and circuit-based communication where telephone (or other identifier) number portability has evolved to enable a subscriber to “port” a subscriber telephone number or other communication identifier geographically and/or between service providers. Packet-based communications are addressed first.
When computers attached to a network communicate, Internet protocol (IP) addresses are used to identify those computers and typically correspond to 32 bit integers for IP version 4 or 128 bit integers IP version 6. Although such IP addresses provide a convenient, compact representation for specifying the source and destination for packets sent across an Internet, human users prefer to assign computers pronounceable, easily remembered names. As a result, the domain naming system (DNS) was developed to provide a scheme for assigning meaningful, high level names to a large set of computers, and to provide a mechanism that maps between high level computer names and IP addresses.
In general, the domain naming system can be viewed as a distributed, shared database of domain names and corresponding IP addresses. Domain servers, more commonly called DNS servers, maintain these databases. An example of a common DNS server is a UNIX-type machine running a version of Berkeley Internet Naming Software (BIND). A domain name may consist of a sequence of subnames separated by a delimiter character—the period. Individual sections of the name might represent sites or groups, but the domain naming system simply refers to each section of a name as a label. An example of such a domain name is an Internet address. The label after the period is the site name authorized by a central authority. The label(s) before the period is(are) the part of the name controlled by the specific site. Here, the top level Internet domain corresponding to the site is the country code “se” for Sweden, and for the e-mail address, it is the top level domain “com”.
Domain servers are conceptually arranged in a tree structure that corresponds to a naming hierarchy. The root of the tree is a server that recognizes the top level domains (or tiers) and knows which server resolves each domain. Given a name to resolve, the root can choose the correct server for that name. At the next level or tier, a set of name servers each provide resolution answers for one top level domain, e.g., se. A server at this domain knows which servers can resolve each of the subdomains under its domain. At the third level of the tree, name servers provide answers for subdomains, e.g., ericsson under se. The conceptual tree continues with one server at each level for which a subdomain has been defined.
Links in the conceptual tree, however, do not indicate physical network connections. Instead, they point to other name servers. Conceptually, domain name resolution proceeds top down, starting with the “root” name server and proceeding to servers located at the branches or leaves of the tree. There are two ways to use the domain naming system: (1) by contacting name servers one at a time, or (2) asking a name server system to perform the complete translation. In either case, client software forms a domain name query that contains the name to be resolved, a declaration of the class of the name, the type of answer desired, and a code that specifies whether the name server should translate the name completely. It sends the query to a DNS server for resolution.
When a DNS server receives a query, it checks to see if the name lies in the subdomain for which it is an authority. If so, it translates the name to an address according to its database and appends an answer to the query before sending it back to the client. If the DNS server cannot resolve the name completely, it checks to see what type of interaction the client specified. If the client requested complete translation, (i.e., recursive resolution), the server contacts a DNS server that can resolve the name and returns the answer to the client. If the client requested non-recursive resolution, (i.e., iterative resolution), the name server cannot supply an answer. Instead, it generates a reply that specifies the name server the client should contact next to resolve the name.
The dynamic host configuration protocol (DHCP) provides automated procedures by which a master node can assign an IP address to a server in the Internet, e.g., a DNS server. In general, IP addresses can be allocated to an entity either statically, i.e., a fixed IP address, or dynamically, i.e., only for as long as the entity is actively connected to the Internet. User devices, like a computer entity or a mobile device in a packet radio system (e.g., GPRS) system, are normally assigned temporary Internet addresses. Although conceptually fairly simple, in practice, the resolution of IP addresses using DNS can be complex and time consuming.
The Internet and the domain naming system are designed to carry packet traffic for enabling computers to communicate. Other types of networks are designed to carry circuit-switched traffic. An example of a circuit-switched network is a legacy network, which employs control signaling using the well-established Signaling System No. 7 (SS-7) as defined by various standards bodies. The routing of a telephone call through a legacy network employs a structured telephone numbering plan. Such structured rules are defined by the International Telecommunication Union (ITU) in the E-series Recommendation E.164. E.164 numbering is applicable in all domains of telecommunications systems including wireline and wireless systems. Each physical node, referred to as a local exchange, is allocated one or more unique exchange number groups. The telephone number of a subscriber typically includes both an exchange number group (typically allocated in ten thousand number blocks) for the exchange to which a subscriber is connected, and a number in that group which is specific to the subscriber.
For example, a subscriber having a telephone number 881-1657 is connected to a local exchange having an exchange number group 881, within that group, the subscriber has a subscriber number of 1657. Thus, the telephone number is geographical in the sense that there is a defined relationship between the telephone number and a geographical area served by the exchange to which the subscriber is connected. There are also non-geographical telephone numbers where no geographical relationship exists. For example, toll free numbers, virtual private network numbers, and universal access numbers are typically serviced by intelligent networks (IN). IN services are controlled and executed by a service control point (SCP) using data stored in a service data function (SDF).
When a subscriber physically relocates or changes service providers, it is desirable for the subscriber not to have to change his telephone number. Accordingly, number portability services permit a subscriber to “port” or transfer his telephone number to wherever the subscriber physically relocates or to a different service provider. Similarly, a mobile subscriber E.164 identification number, such as the mobile subscriber integrated services digital network number (MSISDN), is used to identify the mobile subscriber, the subscriber's subscription, and the subscriber's current location. When a mobile subscriber changes service providers, a mobile subscriber number portability database is updated to reflect the change. Commonly-assigned U.S. Pat. No. 6,064,887 describes an example of mobile subscriber number portability in a telecommunications network that permits a mobile subscriber to retain its same MSISDN when changing service providers.
Recently, there have been discussions in the Internet Engineering Task Force (IETF) and other forums of the possibility of permitting a user to enter a telephony number, hereafter often referred to as an “E.164 number,” into a computing device with the goal of treating that E.164 number as a DNS query for which a corresponding Internet address is supplied by the DNS. This particular type of DNS query is referred to as an ENUM query. A recent IETF request for comments (RFC) 2916 entitled, “E.164 Number and DNS,” outlines the possible use of the domain naming system for the storage of E.164 telephony numbers. The DNS could then be used to identify available services connected to an E.164 number.
A problem with using the domain naming system to resolve E.164 telephone numbers into other corresponding addresses such as Internet addresses is that a routing node, such as a gateway MSC, who receives a call including a called party does not know whether the called party's E.164 telephone number is a ported number. If the E.164 number has been transferred to another network operator, the routing node does not have enough information to properly route the call. Another limitation is that an MSC (or GMSC) does not “speak the same language” as the DNS system.
The present invention overcomes these problems by providing an efficient interface and service exchange between a circuit-switched communications network and a domain naming system in a packet-switched communications network. A node in the circuit-switched communications network receives from a first entity a request for a first service involving a second entity associated with a second entity identifier. A message is sent from the circuit-switched network node to a DNS server in the packet-switched network requesting a second service related to the second entity identifier. The result of the second service from the DNS server is used in providing the first service. For example, the first service may be an electronic communication between the first and second entities, and the second service may be resolution of the second entity identifier. Such resolution may include resolution of a number, name, or address associated with the second entity. Other example second services include a prepayment service where the DNS server is used to retrieve prepaid charging information for the first or second entity. Alternatively, the DNS server may be used to access other types of servers (such as a weather service server or a news server) associated with a particular entity identifier.
A preferred, non-limiting, example embodiment of the invention takes into account number portability. A circuit-switched routing node in the circuit-switched network sends a routing request message with the second entity identifier to a number portability database (NPDB) node. The message includes an indication that DNS resolution is needed for the second entity identifier. The NPDB node requests resolution of the second entity identifier from a DNS server, which returns a resolution result that indicates whether the second entity identifier has been transferred (“ported”) between network operators. If there has been no transfer, i.e., no number porting, the electronic communication is routed in a fashion that does not take into account number portability. On the other hand, if the second entity identifier has been ported, the DNS server provides the routing node in the circuit-switched communications network with a resolution result that identifies the home network of the second entity. The resolution provided by the DNS service may include resolution of a number, name, or address associated with the second entity.
In an example application where the circuit-switched network is a mobile network, and the packet-switched network is the Internet, a Gateway Mobile Switching Center (GMSC) in the mobile network receives a call setup message intended for a called entity that includes a called entity telephone number. The GMSC queries a number portability database (NPDB) node in the circuit-switched network using the called entity telephone number indicating that DNS resolution is needed. The number portability database node generates an ENUM query to the DNS server using the called entity telephone number. The DNS server performs DNS resolution and returns an NAPTR record with a Universal Resource Locator (URL) corresponding to the called entity telephone number.
The contents of the NAPTR record vary depending on whether the called entity telephone number has been ported between network operators. If the number is ported, the DNS resolution provides a prefix for the called entity telephone number. Accordingly, a call setup message is sent to a Home Location Register (HLR) database located in the called entity's home network. The HLR requests a routing number from a Visiting Location Register (VLR) database currently serving the called party. Once that routing number is obtained, it is provided to the GMSC. The GMSC then has sufficient information to route the call to the called entity. Example signaling implementations are described in more detail below using SS7 signaling protocols to different types of existing number portability databases.
Another aspect of the present invention addresses a problem that is particular to mobile communications networks. In mobile communications networks, subscriber services and other information pertaining to a subscriber subscription are stored in the home operator network database, i.e., home location register (HLR), based on subscriber International Mobile Subscriber Identity (IMSI) numbers. On the other hand, routing information employed in call setup procedures employ Mobile Subscriber Integrated Services Digital Network (MSISDN) numbers. Thus, there is a mobile identifier incompatibility when a node like the GMSC must route a call based upon the called entity's MSISDN but needs certain information regarding that called entity stored in the HLR database based on the called entity's IMSI.
The present invention solves this problem by using the Domain Naming System (DNS) to administer a relationship between a mobile subscriber's MSISDN and IMSI. Thus, when a call setup message is received with the called entity's MSISDN, an ENUM message is sent to a DNS server requesting resolution of the called entity's MSISDN. The DNS server uses the MSISDN in the ENUM query to obtain a corresponding NAPTR record that includes the called entity's IMSI. The returned IMSI is used to route the call. A similar relationship can be administered in the DNS between the called entity's MSISDN (or any other identifier) and a Mobile Global Title (MGT) (or any other identifier) associated with the called entity.